const moment = require('moment');
module.exports = (db, DataTypes) => {
  // 这里记录申请单在第几步被谁操作了，这样在添加的时候就不需要挨个分辨stepXName了
  // 如果step为0，表示这个申请单是用户自己申请的
  // 如果step非0，表示这个申请单是用户审批过的
  return db.define('UserRequestNote', {
    id: {  // 这个id很关键，没有这个id则UserId和RequestNoteId同时重复数据库是不允许的！
      type: DataTypes.INTEGER,
      primaryKey: true,
      autoIncrement: true,
    },
    signCreatedTime: {   // 签字时间要记录下来
      type: DataTypes.STRING,
      set(value) {
        let date = moment();
        let year = date.year();
        let month = date.month() + 1;
        let day = date.date();   // todo: momentjs里面要获取某月的某一天要用date，注意！
        this.setDataValue('signCreatedTime', `${year}年${month}月${day}日`);
      }
    },
    step: DataTypes.INTEGER,  // 用户是在第几步进行操作的
    UserId: DataTypes.INTEGER, // 用户是谁
    RequestNoteId: DataTypes.INTEGER,  // 哪个申请单
  }, {
    associate(models) {
      // models.UserRequestNote.hasMany(models.User, { foreignKey: 'UserId' }); // 这种写法错误！会给User表加上UserId
      // models.UserRequestNote.hasMany(models.RequestNote, { foreignKey: 'RequestNoteId' }); // 这种写法错误！会给RequestNote表加上RequestnoteId
    }
  });
};
